Method and System for Online Collaboration

ABSTRACT

Embodiments of a method and system for online collaboration enable multiple users to gather content electronic content items from various sources. The content items are associated with a particular user and with each other. Users can find other users that have similar content or personal information. A collaboration session is hosted between multiple participating users that allows the users to access and modify common content during the same session. Modification includes a user marking or labeling content with a label that includes metadata regarding the content. Information from the session, including modifications, is automatically processed and stored as result data. An example of result data is a flash card created for the purpose of language learning. The result data is accessible by the user later for further use and/or modification.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 60/970,918, filed Sep. 7, 2007, which is herebyincorporated by reference in its entirety.

FIELD OF THE INVENTION

Embodiments described herein relate generally to online collaborationsystems.

BACKGROUND

The ability to collaborate is an age old, fundamental activity forhumans and necessary for continued progress and learning. With allparticipants present at the same geographical location, it is easy forparticipants to share objects and content, discuss, create new contentand learning, and use this newly generated content for continuedlearning after the collaboration session has ended. As an example,students and teachers can get together and learn a new language bylooking at text, pictures, and videos and discuss. During the session,the participants can create flash cards of new words related to thecontent. The student can then save these flash cards for later use, andpractice the language skills by memorizing the new phrases written onthe flash card. As another example, doctors looking at x-ray picturescan write or dictate notes and revisit these later for medical diagnosisor learning.

With phones and phone systems, collaboration between users in remotelocations may currently take place via phone conferences. However, phoneconferences have limitations. For example, participants cannot point atshared content or receive visual clues. Collaborative use and ofcreation of various types of content is not really possible during aphone session.

With the advent of the Internet, it is now easy to conduct collaborationsessions, using both audio and video. Examples of such systems areWebEx™ and GotoMeeting™. However, while these systems allow theparticipants to share and collaborate around previously generatedcontent in electronic form, they do not support the ability to easilycreate new content derived from the collaboration session, save thisnewly created content in an a form and place accessible to theparticipants, or allow the participants to easily view, modify, andmanage content after the collaboration session has ended. Referring tothe language learning example above, it would be desirable to have asystem that easily allows the manual, semi-manual or automated creationof flashcards or other outputs during a language learning collaborationsession. It would be desirable to have system that allows flash cards tobe saved and used later to practice, for example, language skills.Similarly, it would be desirable to have a system that easily allows touse generated content in entertainment like environments like games.Similarly, it would be desirable to have a system that easily allowsdoctors to collaborate around x-rays to easily generate notes, savethem, and revisit them later.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detaileddescription that follows and from the accompanying drawings, whichhowever, should not be taken to limit the invention to the specificembodiments shown, but are for explanation and understanding only.

FIG. 1 is a block diagram of a collaboration system according to anembodiment.

FIG. 2 is a diagram of a collaboration user interface screen accordingto an embodiment.

FIG. 3 is a diagram of a messaging exchange with associated devices andstorage according to an embodiment.

FIG. 4 is a diagram illustrating an example of a label that can begenerate during a language learning collaboration session according toan embodiment.

FIG. 5 is a diagram illustrating an example of a content creationmessage that is used to communicate between devices during acollaboration session according to an embodiment.

FIG. 6 is a diagram showing a text content with blank spaces, meant forusers to insert text into the blanks according to an embodiment.

FIG. 7 is a diagram of a display screen showing content with new pendrawing content added during a collaboration session according to anembodiment.

FIG. 8 is a diagram illustrating a display screen of a user interfacefor browsing, viewing, and managing content created during acollaboration session, after the session has been completed according toan embodiment.

FIG. 9 is a diagram illustration a display screen of a user interfacewhich is an example of a memorization game, where the content isgenerated during a collaboration session according to an embodiment.

FIG. 10 is a block diagram illustrating a process flow of onlinecollaboration according to an embodiment.

DETAILED DESCRIPTION

Embodiments of a method and system for online collaboration enablemultiple users to gather content electronic content items from varioussources. The content items are associated with a particular user andwith each other. Users can find other users that have similar content orpersonal information. A collaboration session is hosted between multipleparticipating users that allows the users to access and modify commoncontent during the same session. Modification includes a user marking orlabeling content with a label that includes metadata regarding thecontent. Information from the session, including modifications, isautomatically processed and stored as result data. An example of resultdata is a flash card created for the purpose of language learning. Theresult data is accessible by the user later for further use and/ormodification.

FIG. 1 is a block diagram of a collaboration system 100 according to anembodiment. The system 100 can be used for collaboration around content.The system 100 includes at least one device 102 for viewing andinteracting with content, a communication client 104 for audio and videocommunication, a collaboration server 106 for managing and distributingthe communication to and from device 102 and communication client 104, awebserver 108 for displaying content on device 102, a storage device 112for storing content, and one or more server devices 114. Thesecomponents of the system 100 can communicate through a computer network110. The computer network 110 can be the Internet, an internal LAN, orany other computer or communications network. The system allowsintegration with any other networks and devices such as mobile phonesand PDAs. The system 100 can be integrated and rebranded into any otherwebsite as a “whitelabel” application. Furthermore the system 100 can beaccessed and information can be shared through third party applicationssuch as Facebook™ and its application platform among others. In someimplementations, other configurations can be used, including some thatdo not have a client-server architecture.

In some implementations, the device 102 can include a display forpresenting software applications such as web browsers. In someimplementations the device 102 can be a computing device such as adesktop computer, a mobile phone, an internet terminal or any othercomputing device. In other implementations, the device 102 can be anon-computing device such as a television or a digital billboard. Anydevice with capabilities for viewing content can be included in thesystem 100. For example, the device 102 can be a desktop computerconfigured with a web browsing software application for viewing webpages such as an illustrated web page 124.

The web page 124 is a resource of information that can be accessedthrough an application such as a web browser. In some implementations, aweb page may be retrieved from a local computer or from a remote server,such as the server device 108. For example, web pages can includecontent such as text, pictures, videos, flash animations, presentations,Microsoft PowerPoint™ widgets, advertisements, and other content sourcedfrom one or more server devices 114. The content of web page 124 can beautomatically and dynamically adjusted to the type of user who isvisiting the site. For example, if the system 100 has knowledge aboutthe user through profile, cookie or other information that the user is a“14 year old student” or a “45 year old investment banker” the design,features and functionalities rendered to that user might vary accordingto the users segment and previous behavior.

The communication client 104 is used for voice communication andrecording audio and playing back audio and video. In someimplementations, the communication client 104 is a phone, a mobilephone, PDA, or any physical device that can be used for audiocommunication. In other implementations, the communication client 14 isa software application that can be executing on any computing device,such as the device 102 or the server devices 114. In someimplementations, the software application can be a separate application,such as soft phone, a video phone, communicator, or an audio enabledInstant Messaging application. Examples of these include Skype™, Jajah™,Google Talk™, Yahoo Instant Messenger™, Microsoft Communicator™, and MSNMessenger™. In other applications, the software application is embeddedin another software application. Examples of this include widgets in aweb browser or the communication part of a collaboration application.

The collaboration server 106 can be configured to manage the informationrelated to users. In some implementations, this information includegeneral types of information such as first name, last name, emailaddress, password, pictures, videos, interests, age, gender, hobbies, adescription of background, educational history, and work history. Inother implementations, the user information can include informationrelated to education, such as number of languages spoken, skill level ineach language, educational background, number of students, and number oflearning sessions. In other implementations, the user information canalso include information related to communication and collaboration,such as the number of minutes collaborated, number of collaborationsessions, ratings and text describing opinions about the user, and timesand dates of the collaboration sessions.

The collaboration server 106 can also be used to manage groups of users.In some implementations, this includes information describing therelationship between users. For example, friendship between users,common interests, memberships of groups, and what other users a userdoes not want to communicate with. In other implementations, the usergroup information includes information generated during a collaborationsession, such as text, pictures, videos, drawings, recorded audio,recorded video, scripts, templates, session duration, session date,session participants, mouse clicks, mouse movements, cursor movements,and software application interactions. In some implementations, thecollaboration server 106 can be configured as a physical server, asoftware application running on another server or combinations thereof.

Collaboration server 106 further includes a user interface 107 thatallows users to interact with the collaboration server and with eachother as further described below.

The collaboration server includes a messaging exchange 120. In someimplementations, the messaging exchange 120 is used to distributemessages to and from device 102, to and from communication client 104,or to and from a combination of both. In yet other implementations, themessaging exchange 120 can receive information from one or more devices102, communication clients 104, and server devices 114. In someimplementations, the messaging exchange 120 can send information to oneor more devices 102, communication clients 104, and server devices 114.In some implementations, the messaging exchange 120 can be configured asa physical server, a software application running on another server suchas the collaboration server 106 or server devices 114, or combinationsthereof. In some implementations, the message exchange 120 can be anInstant Messaging server, such as Jabber, Skype™, Jajah™, Google Talk™,Yahoo Instant Messaging™ service, Microsoft Messenger™, MSN Messenger™,and Microsoft Communication™ server. In some implementations, themessages may be received and sent from the messaging exchange 120 canuse the XMPP protocol. In other implementations, other protocols such asSIMPLE can be used.

The collaboration server 106 can also include a media exchange 122,which is used to manage, receive and send media to and from one or morecommunication clients 104, allowing users of communication clients 104to communicate. In some implementations, media can include audio, video,text, images, pictures, and drawings. In some implementations, the mediaexchange 122 is a local phone system or a global phone company'snetwork. In other implementations, the media exchange 122 is a videoconferencing system. In some implementations, the media exchange 122 canbe configured as a physical server, a software application running onanother server such as the collaboration server 106 or server devices114, or combinations thereof.

The web server 108 can be configured to manage content for viewing andcollaboration. In some implementations, the content managed by the usercan be viewed as part of a web page 112 viewable on the device 102. Asan example, the content viewed can include text, pictures, images,videos, Flash animations, widgets, Gadgets, presentations, MicrosoftPowerPoint™, applications, html-formatted text, and advertisements. Insome implementations, the web server 108 can be configured as a physicalserver, a software application running on another server or combinationsthereof. In some implementations, the content managed by the web server108 can be created by one or more users using the web server 108. Inother implementations, the content can be created by one or more usersusing the device 102. In yet other implementations, the content may havebeen created using other means system 100 and stored on one or moreserver devices 114. In another implementation, the content may be storedon storage device 112.

It is significant that content c 116 represents content that is createdduring a collaboration session. As an example, the user may use the webpage 124 to create the content. This content c 116 can be saved on anyserver device 114, storage device 112, or web server 108. It is likewisesignificant that the content can be viewed, modified, and managed afterthe collaboration session. In some implementations, this can be doneusing device 102 or communication client 104. In other implementations,this is done on at least one server devices 114 or on webserver 108.

FIG. 2 is a diagram of a collaboration user interface screen 200according to an embodiment. The user interface screen 200 is animplementation of a collaboration session user interface such as theinterface 107. The interface allows users to share and collaboratethrough data and voice. The overall functionality allows users to createcontent associated with other content. The arrangement of differentinterface components can be achieved in any different way. Sharedcontent such as images, videos, etc. is conducted through screen field210. Screen field 220 may show an overview of all content available andis set up as a navigation device. Screen field 230 is used to allowintegration with any other communications tool such as instant messagingand Wikis and such. Screen field 240 is used to show all participants ofsession. Screen field 250 is used to give access to all communicationand content manipulation tools. As an example, filed 250 could representthe access point to functionalities described below, for example withreference to FIG. 4 and FIG. 6. Screen field 252 allows a user to pointto a part of the content, such as a picture, in real time so that theaction can be viewed by all participants at the same time. Screen field253 and an indeterminate number of additional fields (not specificallylabeled) can provide the user access to additional functions, such asdrawing, white-boarding, typing, recording or any other activity thathelps to describe content or collaborate. Contextual matching ofexternal content, as displayed in a screen field 290, such as commercialmessages, advertising, lead generation mechanisms and such is achievedthrough mining of all content made available through the system 100described as well as external online user usage data such as cookies.The combination of asynchronously accumulated data as well as meta-dataas well as data collected during synchronous sessions in real timeallows embodiments of the system to present appropriate additionalmessages and content of commercial and non-commercial nature.

FIG. 3 is a diagram of system components 300, including a messagingexchange with associated devices and storage according to an embodiment.Components 300 participate in generating content and capturing contentduring a synchronous collaboration session. Devices 302 and 304 arecoupled to a messaging exchange 306, which in turn is coupled to astorage device 308. In an embodiment, devices 302 and 304 areembodiments of device 102 of FIG. 1, and messaging exchange 306 is anembodiment of messaging exchange 120 of FIG. 1. Similarly, in anembodiment, storage device 308 corresponds to storage device 112 of FIG.1.

Through various mechanisms described with reference to FIG. 2, the usercan create and modify content c1 312. Any modification made to contentc1 (including its first-time creation) is communicated as a message tothe device 304 via the messaging exchange 306. Upon receipt of themessage, the device 304 will create/modify content c2 312 to reflect thechanges described in the message. As a result, the c2 will reflect thechange made to c1. Typically, c2 is not identical to c1 at all times. Insome implementations, the messages from device 302 may take some time toreach device 304. During the period of time when the message is intransit, the modification made to c1 will not yet have been made to c2.Even further, in some cases device 304 may never receive the message,making c1 and c2 different.

The messaging exchange 306 may create a copy of messages that are sentfrom device 302 to device 304. In some implementations, messages can besaved in one or more history files h 316 in storage device 308. In someimplementations, history files h 316 are simple files on a file system,where messages have been appended. In other implementations, historyfiles h 316 can be one or more data basis or data storage systems. Inyet other implementations, a separate content c3 314 may be created fromthe messages from device 302, similar to the manner in which device 304creates the content c2 312. As an optimization, this avoids having torecreate content each time it is needed.

In some implementations, not all messages are stored in the historyfiles h 316. In other implementations, the messaging exchange 306 isconfigurable, including configuring what messages are stored in thehistory file h 316. In other implementations, only messages from eachcollaboration session are stored together in one history file h 316.This allows for accurate recreation of content. In otherimplementations, the messages are stored in separate parts of thehistory file h 316 but still all in the same file. For example, in caseswhere the history file h 316 is implemented by a database, messages maybe stored in separate rows in the database.

Messages can have extra information associated with them, such as dateand time of creation, the order number, an identifier of the user thatcaused the message to be sent, an identifier of the sending device 302,an identifier of all intended receiving devices 304, a sessionidentifier, a sequence number that identifies the order in which themessage was created during the collaboration session, a unique messageidentifier, and any other information that device 302 adds as extrainformation. In some implementations, this information is used toregenerate content c2 312 in device 304.

Any type of content can be created during a collaboration session,including text, images, drawings, feeds, web pages, Flash animations,pictures, sounds, videos, sound recordings, video recordings,presentations, Microsoft PowerPoint™, or combinations thereof. Manytypes of modifications can be made to content. Modifications to textcontent include deletion, insertion, appending new text, moving textaround, changing the layout, etc., but embodiments are not so limited.In a similar fashion, modifications to images may include drawing on topof images, removing parts, adding new parts, overlaying new content, andchanging graphics properties. Also, there is no restriction on where thecontent during a collaboration session is created. Content can becreated by users or created by software applications or by some othermeans. Content can also be created in another system and uploaded intothe system using device 302, server devices 308, or using some othermeans.

In some implementations, modifications to the content can includerecording audio or video from the participants in the collaborationsession and associating it/attaching it to the content. In suchimplementations, the recorded audio or video can be stored anywhere,including on storage device 308 and server devices 108. The recordedaudio and/or video can be played back to the participants during thecollaboration session or after the collaboration session has beencompleted.

FIG. 4 is a diagram illustrating an example of a piece of structuredcontent 400 that can be generated during a language learningcollaboration session according to an embodiment.

In an embodiment, content 400 includes a label that can be generated byusers, for example during a language learning collaboration session.Content 400 can be created in synchronous or asynchronous events. Aspart of the collaboration session, the label 402 is created andassociated with content 400. Content 400 can be content generated inadvance of the collaboration session, such as a picture, video, articleor any other media. Label 402 is useful for recording phrases in alanguage and then adding the translated word or phrases in a secondlanguage. Seeing the phrases in two different languages right next toeach other can be helpful to a student of language. The original phrasescan be entered by any participant in the collaboration session (such asthe student or the teacher). It can also be derived from content 400 orany other content stored elsewhere. In some implementations it may begenerated from spoken language using a transcription component and theninserted into the text field after transcription. The translated phrasecan likewise be created by one of the participants or derived fromcontent or transcription. In other implementations the same mechanism ortechnique can be used for any other structured and unstructured contentunrelated to language learning. For example, in health care, the samemechanism could be used to describe X-rays images by multiple partieswith multiple media inputs such as recordings, video, comparative imagesand such. In yet another application, the same mechanism or techniquecould be used for collaboration documents that require multi-media,multi-party input. For example, in a planning exercise a group oftravelers in multiple locations are planning a trip online. In this casethe travelers can share data and voice in a synchronous and asynchronousway sharing maps, pictures, lists and such sourced from the world wideweb or from proprietary sources all in one interface. In yet anotherapplication, students can have similar sessions collaborating onhomework, or real estate agents can walk clients through virtual homes,videos and other media. All of the collaboratively created materials canbe reviewed, shared and altered before and after the synchronoussessions or asynchronous activities.

The label 402 in some implementations can include record buttons 416 and426, and play buttons 418 and 428. Any participant can click on recordbuttons 416 and 426 to record the pronunciation of one or both of thephrases. A participant can also click on play buttons 426 and 428 toplay back the recording that was made previously. If no recording waspreviously made, the system can play back external recordings of thephrase. In some implementations, the recording may be a generated byautomated text-to-speech systems or from human voices recorded inadvance or in real-time.

In some implementations, the label 402 can have a pointer 404 associatedwith it. The pointer 404 points to an area of content, such as a sectionof a photo or a word of text. This provides an association between thelabel and an area of the content. In other implementations, the timingof the modifications to the labels are recorded and associated with thelabels. This allows the participants to review each of the modificationsby themselves, in order to improve the understanding.

By creating labels during language learning collaboration sessions, theparticipant users are creating structured pieces of content that combinecontents from different languages and allow the user to understand themeeting of phrases in one language through other content.

FIG. 5 is a diagram illustrating an example of a content creationmessage that is used to communicate between devices during acollaboration session according to an embodiment. illustrates oneembodiment of a message, as used in the description of FIG. 3 above. Themessage is sent from the device of person1 to the device of person2,using the XMPP protocol leveraging Instant Messaging. The <body> fieldcontains the actual message describing how to create new content to theexisting content during a collaboration session. All other fields areused by the Instant Messaging server to transmit the message between theuser devices.

FIG. 6 is a diagram showing a text content with blank spaces, meant forusers to insert text into the blanks according to an embodiment. This isanother example of content generated from an online language learningcollaboration session. The text 600 has a number of blanks 602. The text600 can be generated before the language learning collaboration session.During the collaboration session, the participants fill out the blankswith new text during the session.

FIG. 7 is a diagram of a display screen showing content with new pendrawing content added during a collaboration session according to anembodiment. By using capabilities provided during the language session,content 702 has been created as a pen drawing, on top of the content700. As an example, content 702 can be used to highlight features ofcontent 700 that require special attention by the other participants inthe session.

FIG. 8 is a diagram illustrating a display screen of a user interfacefor browsing, viewing, and managing content created during acollaboration session, after the session has been completed according toan embodiment. FIG. 8 illustrates using the content in individualinteractive review activities comparable to flash cards with interface900. Functionality 910 shows content elements such as pictures, video,etc. that has been used in synchronous sessions or asynchronouscollaboration activities. Interface 900 uses all information and contentthat has been created described in FIG. 4 and FIG. 6 as well as otherpotentially available data. The interface shows markings whereadditional meta-information described with reference to FIGS. 4 and 6have been added. By clicking on those markings, the previously generatedcontent can be reviewed. Tabs 920, 921, 922 allow the user to accessfunctionalities that reflect the capability to sort different contentelements according to for example the learning progress. For example,content that has been completely understood can be moved from the firstsection marked by tab 920 to the next section marked by tab 921.Sections 911 and 912 provide the information that has been developedthat has been described in FIG. 4. A section 911 shows one part of theinformation (as a video, picture or text, for example) and a section 912is provided for the user to type in the missing content, in case of thelanguage learning application, the translation of the other language. Analgorithm allows automatic presentation of errors and prompts the userto correct the input. A section 930 allows to the user to click in orderto play and/or edit previously recorded voice or media as part of thefunctionality described in FIG. 4. A section 932 is used to presentstandard navigation features such as forward, reverse, see all contentand such. Any individual 900 interface or content thereof can either beprivately used or shared with other users of the system 100 describedwith reference to FIG. 1.

FIG. 9 is a diagram illustration a display screen of a user interfacewhich is an example of a memorization game, where the content isgenerated during a collaboration session according to an embodiment.FIG. 9 illustrates using the content in shared (community) activitiessuch as memorization games using content that has been or is beingcreated through system 100 by users. Two or more users play againsteach-other. The reader skilled in the art will appreciate that manyvariations of entertainment like games that the user can engage with inprivate, such as described in FIG. 8, or in a shared environment is verybroad. Similar to the description in FIG. 8, interface 1000 uses allinformation and content that has been created as described withreference to FIGS. 4 and 6, as well as other potentially available data.An area 1001 is used to shows users currently associated with theactivity or game, as well as scores and other ranking metrics andstatistics in form of detailed views and dashboards. An area 1003 isused to allow the users to electronically see front and back-page ofelectronic cards that hold the content created as described in FIG. 4.There are always two matching cards that the user can uncover in orderto deepen his/her learning skills. The functionality display pieceslying face down. A user gets to pick two cards, both of which will berevealed to everybody. If the two cards match, the user gets to removethe cards from the game board and receives a point that is displayed in1001. An algorithm places all electronically available cards randomly sothat activity can be repeated without a known pattern. Content in sharedactivities are provided from the system described with reference to FIG.1, across multiple associated users.

FIG. 10 is a process diagram that summarizes an example use case of thesystem 100 in an embodiment. The use case is illustrated as a processwith four phases, A, B, C, and D. In phase A, a user maintenance module1100 allows the user to view and maintain his account and profile usinga web browser. A content generation module 1101 allows the user togenerate initial content including still or moving images, text, orother data. The user is enabled to use available APIs to connect toother services such as 1102 flickr™, 1103 YouTube™ or any other thirdparty content providers. The user can also make proprietary content fromhis own hard-drive 1104 or other storage device accessible. The usedmedia content can be enhanced through additional text or other datawithin the functionality made accessible though modules 1100 and 1101 inphase B.

A collaboration module 1105 allows the user to see which other users areavailable online and offline and what content they have to share orcollaborate about. A communication module 1106 allows the user toinstantly connect through different means of communication such as VOIP,Instant Messaging, eMail, and to a desired fellow user either throughthe selection of desired content or a particular user profile. Theprocess includes a message that is sent from the communication initiatorto the communication receiver that allows the receiver to either acceptor reject the request.

In phase C, after the request to communicate is accepted functionalitiesdescribed in FIG. 2 are applied. During the synchronous sessionsfunctionalities described with reference to FIG. 4 may or may not beused. Users may rate content and/or other users based on theirexperience during the session. Ratings are stored and accessible tousers. Ratings are updated using an algorithm that computes overallratings for users and content when new ratings are submitted.

In phase D, after the session is completed functionalities describedwith reference to FIGS. 8 and 9 are applied.

During the whole process of collaboration in steps all of the phasesA-D, behavioral and contextual data is captured and can be used foranalytics and commercial or non-commercial outputs such as advertisingor further use recommendations.

The features described can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The apparatus can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device or in a propagated signal, for executionby a programmable processor; and method steps can be performed by aprogrammable processor executing a program of instructions to performfunctions of the described implementations by operating on input dataand generating output. The described features can be implementedadvantageously in one or more computer programs that are executable on aprogrammable system including at least one programmable processorcoupled to receive data and instructions from, and to transmit data andinstructions to, a data storage system, at least one input device, andat least one output device. A computer program is a set of instructionsthat can be used, directly or indirectly, in a computer to perform acertain activity or bring about a certain result. A computer program canbe written in any form of programming language, including compiled orinterpreted languages, and it can be deployed in any form, including asa stand-alone program or as a module, component, subroutine, or otherunit suitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include, e.g., a LAN, a WAN, and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of this disclosure. Accordingly, other embodimentsare within the scope of the following claims.

1. An online collaboration method, comprising: gathering first contentfrom a plurality of sources as specified by a first user, wherein thefirst content comprises a plurality of data items in a plurality ofelectronic formats; associating the plurality of data items of the firstcontent with each other and with the user; receiving a request from thefirst user to identify at least one second user based on similaritiesbetween the first content and a second content associated with the atleast one second user, wherein the second content comprises a pluralityof data items in a plurality of electronic formats; during an onlinecollaboration session between the first user and the at least one seconduser, associating the first content with the second content; andautomatically processing the data of the online collaboration session tocreate a set of result data, wherein the result data includes thirdcontent comprising first content data items, second content data items,and metadata related to the third content, wherein the result data isuseable to display the third content, to use the third content, tomodify the third content, and to manage the third content.
 2. The methodof claim 1, further comprising presenting a user interface to each ofthe first user and the at least on second user during the collaborationsession, wherein the user interface allows a user to access the firstcontent in real time, to access the second content in real time, tomodify the first content in real time, and to modify the second contentin real time.
 3. The method of claim 2, wherein modifying comprisesattaching labels to content displayed on a display device, wherein alabel is configurable by a user, and the label is associated with thecontent.
 4. The method of claim 3, wherein the content is an imagedisplayed on the display device, and wherein a location of the labelaffects the association of the label with the content.
 5. The method ofclaim 4, wherein the third content comprises the label.
 6. The method ofclaim 5, wherein the third content comprises the label presented as aninteractive flash card with which the user interacts in a learningsession.
 7. The method of claim 6, further comprising using results ofthe learning session to modify the flashcards in real time.
 8. Themethod of claim 1, further comprising receiving a request from a user toaccess the result data, wherein accessing comprises the user interactingwith the third content.